Le rôle des différents groupes dans la publicisation des biomarqueurs
Le rôle des différents groupes dans la publicisation des biomarqueurs#
Les graphiques ci-dessous visent à compléter l’analyse présentée à la page précédente en regardant pour chaque biomarqueur la place occupée par les différentes catégories d’acteurs dans sa diffusion. Cette diffusion est appréhendée à travers le nombre de tweets mentionnant au moins une fois un biomarqueur.
Outre les valeurs absolues, plusieurs procédure de normalisation ont été appliquée. La première, toute simple, consiste à calculer pour chaque année la proportion de tweets contenant le biomarqueur x publiée par chacune des catégories sur l’ensemble des tweets contenant ce biomarqueur.
La deuxième donne la proportion de tweets contenant le biomarqueur x publiés par une catégorie sur l’ensemble des tweets de cette catégorie.
La troisème rapporte le nombre de tweets contenant au moins une référence au biomarqueur x sur l’ensemble des tweets contenant un biomarqueur publiés par chacune des catégories d’acteurs.
Dans le cas du biomarqueur ALK par exemple, 23 advocacy patients ont publiés en 2018 plus de 1000 tweets y faisant référence. Ils représentent ainsi 14% des comptes ayant parlés au moins une fois de ALK et sont à l’origine de 52% des tweets sur ce biomarqueur en 2018. Cette même année, 58 oncologues ont twitté 220 messages sur le même biomarqueur. Ils représentaient donc 36% des comptes publiant sur ALK en 2018, mais n’ont été à l’origine que de 11% des tweets.
Ramené au nombre total de tweets publiés par ces deux catégories, on constate qu’en 2018 moins de 1% des tweets des oncologues contenaient une référence à ALK, contre 5% pour les advocacy patients. En termes de compte, 10% des oncologues et 17% des advocacy patients ont publié au moins un tweet parlant de ALK.
Enfin, 67% des tweets mentionnant un biomarqueur publié par les advocacy patients en 2018 concernent ALK. Dans le cas des oncologues cette proportion passe à 19%.
biomarker = "NTRK"
df=df0.merge(users,on=['user_id'], how = "inner")#how = inner by default
df["somme_biom"] = df['ROS1'] +df['ALK']+df['EXON']+df['EGFR']+df['KRAS']+df['NTRK']+df['BRAF']+df["MET"]+df['RET']+df["HER2"]
df = df.loc[(df["User_status"] != "Other") &
(df["User_status"] != "Undefined") &
(df["Year"] >= 2013)]
role_variable = variable[1]
fig1 = make_subplots(rows=1, cols=1,
shared_xaxes=True,
vertical_spacing=0.02)
#for j, v in enumerate(variable):
df1 = time_series(data = df, time_length = time_length, x = role_variable, year_base = year_base, biom = biomarker)
for z, col in enumerate(list_of_compute):
for i, n in enumerate(df1[role_variable].unique()):
if col == 'prop_tweets_biom_by_group' or col == 'prop_users_biom_by_group':
fig1.append_trace(
go.Scatter(
x= df1[time_length].loc[(df1[role_variable]==n)],
y= df1[col].loc[(df1[role_variable]== n)],
stackgroup='one',
name = n,
meta= [col]),
1,1)
else :
fig1.append_trace(
go.Scatter(
x= df1[time_length].loc[(df1[role_variable]==n)],
y= df1[col].loc[(df1[role_variable]== n)],
name = n,
meta= [col]),
1,1)
#
Ld=len(fig1.data)
Lc =len(list_of_compute)
#print(fig)
for k in range(0, Ld):
#print(fig.data[k].meta[0])
#print(role_variable)
if "nb_tweets_by_group_biom" in fig1.data[k].meta[0]:
fig1.update_traces(visible=True, selector = k)
else:
fig1.update_traces(visible=False, selector = k)
def create_layout_button(k, customer):
list_to_display = []
for i, trace in enumerate(fig1.data):
#print(fig.data[i].meta[1])
if customer == fig1.data[i].meta[0] :
list_to_display.append(True)
else:
list_to_display.append(False)
return dict(label = customer,
method = 'update',
args = [{'visible': list_to_display,
'title': customer,
'showlegend': True}])
fig1.update_layout(
title= f'Evolution du nombre de comptes et de tweets mentionnant le biomarqueur {biomarker}<br>en fonction des rôles (variable : {role_variable})',
updatemenus=[
go.layout.Updatemenu(
active = 0,
buttons = [create_layout_button(k, customer) for k, customer in enumerate(list_of_compute)],
x= 1.2,
y= 1.8
),
]
)
#print(fig.layout.updatemenus)
fig1.show()